home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
cpp_libs
/
oath.lha
/
oath
/
test
/
hs1.cc
< prev
next >
Wrap
C/C++ Source or Header
|
1991-08-29
|
3KB
|
120 lines
#include "oath/hashSet.h"
#include "oath/character.h"
#include "oath/localToken.h"
#include "timer.h"
#include <iostream.h>
/////////////////////////////////////////////////////////////////////////////
// Test of characters and tokens
main ()
{// Test Tokens ////////////////////
tokenA T1 = localTokenA::make();
tokenA T2 = localTokenA::make();
tokenA T3 = localTokenA::make();
tokenA T4 = localTokenA::make();
characterA C1 = characterA::make('1');
characterA C2 = characterA::make('2');
characterA C3 = characterA::make('3');
characterA C4 = characterA::make('4');
// Hash Sets /////////////////////
hashSetA S1 = hashSetA::make();
hashSetA S2 = hashSetA::make(2);
hashSetA S3 = hashSetA::make(5);
// Insertion /////////////////////
S1 << T2 << C2 << T3 << C3 << T4 << C4;
S2 << T1 << C1 << T3 << C3 << T4 << C4;
S3 << T1 << C1 << T2 << C2 << T4 << C4;
// Contains ////////////////////
if(!S1.contains(T1) && !S1.contains(C1) &&
S1.contains(T2) && S1.contains(C2) &&
S1.contains(T3) && S1.contains(C3) &&
S1.contains(T4) && S1.contains(C4))
cout << "Success 1" << endl;
else
cout << "Fail 1" << endl;
if( S2.contains(T1) && S2.contains(C1) &&
!S2.contains(T2) && !S2.contains(C2) &&
S2.contains(T3) && S2.contains(C3) &&
S2.contains(T4) && S2.contains(C4))
cout << "Success 2" << endl;
else
cout << "Fail 2" << endl;
if( S3.contains(T1) && S3.contains(C1) &&
S3.contains(T2) && S3.contains(C2) &&
!S3.contains(T3) && !S3.contains(C3) &&
S3.contains(T4) && S3.contains(C4))
cout << "Success 3" << endl;
else
cout << "Fail 3" << endl;
// Removal /////////////////////
S1.remove(T2).remove(C2);
S2.remove(T3).remove(C3);
S3.remove(T4).remove(C4);
// Contains ////////////////////
if(!S1.contains(T1) && !S1.contains(C1) &&
!S1.contains(T2) && !S1.contains(C2) &&
S1.contains(T3) && S1.contains(C3) &&
S1.contains(T4) && S1.contains(C4))
cout << "Success 4" << endl;
else
cout << "Fail 4" << endl;
if( S2.contains(T1) && S2.contains(C1) &&
!S2.contains(T2) && !S2.contains(C2) &&
!S2.contains(T3) && !S2.contains(C3) &&
S2.contains(T4) && S2.contains(C4))
cout << "Success 5" << endl;
else
cout << "Fail 5" << endl;
if( S3.contains(T1) && S3.contains(C1) &&
S3.contains(T2) && S3.contains(C2) &&
!S3.contains(T3) && !S3.contains(C3) &&
!S3.contains(T4) && !S3.contains(C4))
cout << "Success 6" << endl;
else
cout << "Fail 6" << endl;
// Speed Test ////////////////////
timer Timer;
int Count = 0;
Timer.start();
for(int I = 0; I < 100000; ++I)
{if(!S1.contains(T1) && !S1.contains(C1) &&
!S1.contains(T2) && !S1.contains(C2) &&
S1.contains(T3) && S1.contains(C3) &&
S1.contains(T4) && S1.contains(C4))
++Count;
}
Timer.split();
cout << "Count should be 100000: " << Count << endl;
cout << "Time to process 100000*8 contains calls:" << endl
<< "\tReal Time = " << Timer.real() << " ms" << endl
<< "\t CPU Time = " << Timer.cpu() << " ms" << endl;
}